home *** CD-ROM | disk | FTP | other *** search
- //------------------------------------------------------------------------------
- // File: AudioCapDlg.h
- //
- // Desc: DirectShow sample code - Main header for CAudioCapDlg class
- //
- // Copyright (c) 2000-2001 Microsoft Corporation. All rights reserved.
- //------------------------------------------------------------------------------
-
- #if !defined(AFX_AUDIOCAPDLG_H__CC9BF075_154D_430A_9E58_7311EC641C61__INCLUDED_)
- #define AFX_AUDIOCAPDLG_H__CC9BF075_154D_430A_9E58_7311EC641C61__INCLUDED_
-
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
-
- #include <dshow.h>
-
- //
- // Constants
- //
- #define DEFAULT_BUFFER_TIME ((float) 0.05) /* 50 milliseconds*/
- #define DEFAULT_FILENAME TEXT("c:\\test.wav\0")
- #define RECORD_EVENT 0
- #define PLAYBACK_EVENT 1
-
- static const GUID CLSID_WavDest =
- { 0x3c78b8e2, 0x6c4d, 0x11d1, { 0xad, 0xe2, 0x0, 0x0, 0xf8, 0x75, 0x4b, 0x99 } };
-
-
- /////////////////////////////////////////////////////////////////////////////
- // CAudioCapDlg dialog
-
- class CAudioCapDlg : public CDialog
- {
- // Construction
- public:
- CAudioCapDlg(CWnd* pParent = NULL); // standard constructor
-
- HRESULT FillLists(void);
- void ClearLists(void);
- void SetDefaults(void);
- void EnableButtons(BOOL bEnable);
- void EnableRadioButtons(BOOL bEnable);
- HRESULT InitializeCapture(void);
- HRESULT GetInterfaces(void);
- HRESULT GetPlaybackInterfaces();
- void FreeInterfaces(void);
- void FreePlaybackInterfaces(void);
- void ReleaseCapture(void);
- void ResetCapture(void);
- void UpdateFilterLists(IGraphBuilder *pGB);
- HRESULT HandleGraphEvent(void);
- HRESULT HandlePlaybackGraphEvent(void);
- HRESULT SetInputPinProperties(IAMAudioInputMixer *pPinMixer);
- HRESULT SetAudioProperties();
- HRESULT ActivateSelectedInputPin(void);
- HRESULT RenderPreviewStream(void);
- HRESULT RenderCaptureStream(void);
- HRESULT DestroyPreviewStream(void);
- HRESULT DestroyCaptureStream(void);
- void ClearAllocatedLists(void);
- void Say(TCHAR *szMsg);
-
- // Dialog Data
- //{{AFX_DATA(CAudioCapDlg)
- enum { IDD = IDD_AUDIOCAP_DIALOG };
- CStatic m_strStatus;
- CButton m_btnMono;
- CButton m_btn8BIT;
- CButton m_btn11KHZ;
- CButton m_btnPause;
- CButton m_btnStop;
- CButton m_btnPlay;
- CListBox m_ListFilterOutputs;
- CListBox m_ListFilterInputs;
- CButton m_btnRecord;
- CButton m_btnProperties;
- CListBox m_ListInputs;
- CListBox m_ListInputPins;
- CListBox m_ListFilters;
- CEdit m_StrFilename;
- CButton m_CheckWriteFile;
- CButton m_CheckAudition;
- //}}AFX_DATA
-
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CAudioCapDlg)
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
- //}}AFX_VIRTUAL
-
- // Implementation
- protected:
- HICON m_hIcon;
- BOOL m_bPausedRecording;
- IGraphBuilder *m_pGB, *m_pGBPlayback;
- IMediaControl *m_pMC, *m_pMCPlayback;
- IMediaEventEx *m_pME, *m_pMEPlayback;
-
- ICaptureGraphBuilder2 *m_pCapture;
-
- IBaseFilter *m_pInputDevice, *m_pRenderer, *m_pFileWriter,
- *m_pSplitter, *m_pWAVDest;
-
- // Generated message map functions
- //{{AFX_MSG(CAudioCapDlg)
- virtual BOOL OnInitDialog();
- afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
- afx_msg void OnPaint();
- afx_msg HCURSOR OnQueryDragIcon();
- afx_msg void OnClose();
- afx_msg void OnButtonFile();
- afx_msg void OnSelchangeListInputDevices();
- afx_msg void OnSelchangeListFilters();
- afx_msg void OnButtonClear();
- afx_msg void OnSelchangeListInputPins();
- afx_msg void OnButtonProperties();
- afx_msg void OnButtonPlay();
- afx_msg void OnButtonPause();
- afx_msg void OnButtonStop();
- afx_msg void OnButtonRecord();
- afx_msg void OnDestroy();
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
- };
-
- //{{AFX_INSERT_LOCATION}}
- // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
- #endif // !defined(AFX_AUDIOCAPDLG_H__CC9BF075_154D_430A_9E58_7311EC641C61__INCLUDED_)
-